package com.jd.jobkeeper.utils;

import java.text.ParseException;
import java.util.Date;

public final class CronUtils {

    /**
     * 计算下次触发时间
     *
     * @param preTriggerTime 前一次触发时间
     * @param cronExpression CRON 表达式
     * @return 下一次调度时间
     * @throws Exception 异常
     */
    public static Date calculateNextTriggerTime(Date preTriggerTime, String cronExpression) {
        CronExpression ce;
        try {
            ce = new CronExpression(cronExpression);
        } catch (ParseException e) {
            throw new RuntimeException(e);
        }
        return ce.getNextValidTimeAfter(preTriggerTime);
    }

}
